Object collaboration apparatus

ABSTRACT

An object collaboration apparatus is presented, in which driving is performed in accordance with message/action reaction relations, and the collaboration among objects can be changed in a flexible and dynamical manner. 
     A message/action reaction relation in a message/action reaction table  103  of a message/action reaction relation storage portion  102  storing relations between messages and information on actions that are reactions to the messages is separated with a message/action reaction relation separation portion  106  of a message/action reaction relation update control portion  105 , and a new message/action relation is organized with a message/action reaction relation organizing portion  107 . Object collaborations can be organized in a flexible and dynamical manner by inserting object collaboration relations, coupling independent object collaborations, external intervention of objects, participation in object collaborations by message sender-side multiplication and participation in object collaborations by message receiver-side multiplication.

This application is a continuing application, filed under 35 U.S.C.§111(a), of International Application PCT/JP99/05382, filed Sep. 29,1999, it being further noted that priority is based upon Japanese PatentApplication 10-281389, filed Oct. 2, 1998 and PCT/JP99/04101, filed Jul.29, 1999.

TECHNICAL FIELD

The present invention relates to an object collaboration apparatus forperforming collaboration processing such as communication andcooperation between a group of computers or objects, and relates to anobject collaboration apparatus for organizing a system, in which aplurality of processes arise in an object-oriented environment, andwhich flexibly adjusts to environmental changes and progressivelychanges accordingly through a computer network.

BACKGROUND ART

As the use of networks has spread in recent years, the number of systemsin which a plurality of objects distributed on a network perform aprocess while collaborating with each other is increasing. As techniquesfor such objects to perform a process in collaboration with each other,research focuses on object-oriented programming and componenttechnology.

One example of object-oriented programming is the open specification foroperating distributed objects CORBA (Common Object Request Broker:Architecture and Specification), issued by the trade association OMG(Object Management Group), which has been set up in order to standardizeand promote object-oriented technology.

FIG. 37 shows an example of an object collaboration in a client/serversystem based on CORBA. In this system, a series of processes isconducted by collaboration of a client application and a serverapplication, namely by an object collaboration.

Application developers describe the service interface provided by aclient and a server with IDL (Interface Definition Language). Theinterface is defined by a group of operations that can be requested froman object. For each operation, the name of the operation, parameters,return value, error exception processing, and additional information aredefined.

Compiling the content defined with IDL by a specialized compiler createsa stub for a client and a skeleton for a server. The stub is a group ofroutines that provide a client application with access to a group ofoperations defined with IDL. In the client application, calling theroutine provided by the stub activates the operation. The skeletonprovides a dispatching routine to a method routine provided by a serverapplication.

The stub and the skeleton are generated in a programming language whichis used by the corresponding client application or server application.For example, if C is used as the programming language, the stub isformed as a group of functions in C. The client application calls thefunction corresponding to the operation to be carried out, therebycalling the corresponding routine of the server application via thestub, ORB run time and the skeleton. After executing the predeterminedprocessing, the processing result is returned to the client applicationwhich originated the call.

Thus, organizing object collaboration processing has become easier withCORBA. However, when actually trying to organize such an objectcollaboration processing with CORBA, it is necessary not only tounderstand CORBA itself, but also to design the object according to theCORBA specifications and define it with IDL. In other words, toconstruct the system it is necessary to fully understand CORBA'sapplication methods.

It is also necessary to be fully aware of the relationship between theobjects. That is to say, it is necessary to make clear what kind ofprocessing is conducted by each object, and which transmissionparameters are required for the processing.

Creating an open interface between objects has increased theindependence of objects. However, the existence of a fixed relationshipbetween these objects is still a precondition.

When thinking of human communication, vague interaction often happens inreality. For example, when a person tries to solve a problem, he/sheutilizes his/her own resources or asks other people for collaboration.In the case of utilizing the own resources, a problem is considered fromvarious view points. Also, in the case of asking others for help, it ispossible to ask either a specific person for help, or to broadly requestassistance from an unspecified person. In the case of broadly asking anunspecified person for assistance, the reaction of the recipient variesin many ways. Some who have a solution may present an answer, whileothers may give advice by passing on their own experience and knowledge,even if that does not directly present a solution. Still others mightignore the inquiry because of total indifference. In other words,whether or not the recipient reacts to a certain piece of informationdepends on the recipient. Furthermore, when the recipient decides toreact to the information, how the recipient does so depends on therecipient.

When the human being in this analogy is replaced with an object here,depending on the object there may be different reactions regarding thechoice of receiving or not receiving information floated on a network orthe processing performed in response to the received information. Thatis, a free collaboration is desirable in the collaboration betweenobjects. In conventional collaboration methods, it was a preconditionthat the relation between objects was fixed, and it was difficult toorganize collaboration systems with such free relations.

Thus, in distributed object system technology, for which CORBA and DCOMare prominent examples, the framework for providing access to an objectthat is transparent to the network and the framework with regard tointerfaces for distributed objects are constantly improving. However,these frameworks are not adequate to answer the question of how toorganize the dynamic collaboration between objects.

DISCLOSURE OF THE INVENTION

To solve these problems, it is an object of the present invention toincrease the degree of freedom for collaboration among objects connectedto a network or for collaboration among computers. It is also an objectof the present invention to present an object collaboration apparatusperforming collaboration processes such as communication or cooperationin groups of computers or groups of objects, responding in a flexiblemanner to changes of the environment in an object-oriented environment,and organizing a system that changes progressively.

Because the object collaboration apparatus of the present inventionincreases the degree of freedom and the flexibility of collaborationchains among organized objects, it is possible to insert new objectsinto the organized collaboration between objects, and to organize a newobject collaboration in a flexible and dynamic manner. Moreover, it ispossible to couple object collaborations that have no collaborationrelation together, and thereby organize a new object collaboration in aflexible and dynamic manner. Furthermore, it is possible to disrupt theorganized collaboration between objects and construct an objectcollaboration chain by inserting an external object so as to organize anew object collaboration in a flexible and dynamic manner by so-calledexternal intervention. Also, it is possible to organize not onlyone-to-one object collaboration, but to organize a new one-to-manyobject collaboration in a flexible and dynamic manner by so-calledreceiver-side collaboration participation or to organize a newmany-to-one object collaboration in a flexible and dynamic manner byso-called sender-side collaboration participation.

It is another object of the object collaboration apparatus of thepresent invention to enable the setting of collaboration conditions inthe object collaboration relations and control the permission ofcollaborations among those objects, while ensuring the above-mentioneddegree of freedom and flexibility of object collaboration.

It is another object of the object collaboration apparatus of thepresent invention to provide a function for easily and explicitlygrasping the relation of organized object collaborations, namely, inputmessage patterns to which the objects react, the objects' actions andoutput message patterns and the collaborations conditions.

It is another object of the object collaboration apparatus of thepresent invention to form object collaboration in a flexible mannergiven a message pattern of an object serving as a starting point of anobject collaboration to be organized and a message pattern of an objectserving as an ending point by searching an object forming acollaboration relation that connects the object of the starting pointwith the object of the ending point.

In order to solve the above-mentioned problems, it is necessary toorganize the collaboration among objects in a more flexible manner. Thiscannot be solved simply by breaking up applications into more componentsbut a framework is necessary, in which functions can be builtdynamically, while objects interact with one another. However, if therelations among the collaborating objects are so close that they dependon each other's internal states and internal functions, then it is noteasy to dynamically construct functions with this interaction.Consequently, flexible relations between the collaborating objects mustbe defined when trying to dynamically construct functions withcollaborations.

The following aspects relate to human communication and human behaviorfor collaborating with each other. In human communication and humanbehavior for collaborating with each other, there is a condition called“awareness.” There is a model that proposes that exchanging informationbased on this “awareness” creates the variation and flexibility of humancommunication and behavior.

In addition to the communication behavior, the “awareness” modelacknowledges the exchange of information by communication entities thatare not involved directly and purposively. Such “awareness” information,in fact, influences several aspects of behavior including thecommunication behavior.

In the field of distributed object systems technology, if collaborationprocessing between objects based on detected “awareness” could beperformed with information processing similar to the “awareness” betweenhuman beings, then it should be possible to make the collaborationbetween objects flexible. Especially in situations where the otherobject of the collaboration changes dynamically, if the changing objectand the object monitoring it can perform an information exchange similarto the “awareness” in human communication and can autonomously executeprocessing, then this can serve as an advantageous processing modelbetween collaborating objects on the network. This is because the“awareness” model defines a flexible relationship in objectcollaboration and creates the flexibility and possibility of dynamicchange in the collaboration between objects.

An object collaboration apparatus in accordance with the presentinvention organizes collaboration between objects by linking objectswith relations between messages floating on an object field and actionscorresponding to these messages, and changes the organized objectcollaboration relations in a flexible and dynamic manner by changing therelations between messages and actions in a flexible and dynamic manner

In order to solve the above-mentioned problems, an object collaborationapparatus in accordance with the present invention includes a messagereceiving portion with which the objects monitor and input messages thathave been sent over a network; a message/action reaction relationstorage portion for storing relations between messages and informationon actions that are reactions to the messages; and an action executionportion that executes actions in accordance with the message/actionreaction relations; includes an action execution portion that executesactions in accordance with the message/action reaction relations; amessage/action reaction relation update control portion for controllingan updating of reaction relations between messages and actions inaccordance with the necessity to update the reaction relations betweenmessages and actions; a message/action reaction relation separationportion for separating an existing message/action reaction relation inthe message/action reaction relation storage portion specified by themessage/action reaction relation update controlling portion; and amessage/action reaction relation organizing portion for associatingspecified actions with specified messages with the message/actionreaction relation update controlling portion; wherein a new relationbetween an action and a message is organized, intervening into anexisting relation between an action and a message.

Here, if the specification of the message/action reaction relationupdate controlling portion is the specification of an existingmessage/action reaction relation and the specification of a newmessage/action reaction relation to be inserted, then the message/actionreaction relation separation portion separates the existingmessage/action reaction relation based on this specification, and basedon the specifications, the message/action reaction relation organizingportion associates the existing message with a new action and aassociates a new message outputted as a part of the new action with theexisting action, and an object having a new message/action reactionrelation is inserted between the existing message and the exitingaction.

With this configuration, changes in the flow of object collaboration canbe performed in a flexible and dynamical manner by changing themessage/action reaction relations, the necessity to perform programchanges in objects and recompile, which exists when changing objectcollaborations in conventional systems, is eliminated, and it ispossible to make system design with object collaborations moreeffective.

With the present invention, organizing, changing, deleting, or removingobject collaboration relations in a flexible manner is made possible byemploying a message/action reaction relation separation portion and amessage/action reaction relation organizing portion. In one example, acascaded insertion of object collaborations becomes possible bycascading the insertion of message/action reaction relations. Also, theremoval of a specified object is possible, organizing an objectcollaboration by first separating the collaboration relations at aspecified object, and then bypassing this object and setting amessage/action reaction relation connecting the preceding and thefollowing object. Furthermore, it is possible to couple independentobjects by insertion of an object bridging a plurality of independentobjects. Conversely, it is possible to separate an object collaborationby taking an object from a series of object collaborations anddisrupting the collaboration with the preceding and following object.Furthermore, object collaboration can be made parallel by appropriatebranching of collaboration relations of inserted or coupled objects.

The present invention uses these various kinds of object collaborationrelations, and thus can be applied to a variety of systemconfigurations. For example, if a plurality of objects are provided thatreact to a message resulting as an action of one object, then it ispossible to devise an object collaboration apparatus with receiver-sideparticipation, and it becomes possible to search objects from which aprocess can be requested with a bidding system. Conversely, if an objectis organized, that reacts to messages sent from a plurality of objects,then it is possible to devise an object collaboration apparatus withsender-side participation, a plurality of parallel object collaborationscan be bundled together, and it becomes possible to receive replies fromobjects to which a process is requested in a bidding system and award abid.

Furthermore, in order to make the insertion of new object collaborationsinto a series of object collaborations easier, object collaborationsinclude an object collaboration core portion, in which objectcollaboration relations are maintained as a core, and an objectcollaboration interface portion for interfacing collaboration betweenthe object collaboration core portion and other objects, and if anobject collaboration relation is changed, the relations of the objectcollaboration core portion are maintained unchanged, and the objectcollaboration relation is changed by changing the collaborationdestination of the object collaboration interface portion.

With this configuration, by providing an object collaboration coreportion that maintains object collaboration relations as a core,influence on this portion can be avoided when an object collaboration ischanged, and by providing an object collaboration interface portion forinterfacing collaboration between the object collaboration core portionand other objects, this portion can organize or change the relation withother objects. It is possible to insert several new objectcollaborations between collaborations of object collaboration interfaceportions, and it is possible to organize object collaboration byso-called cascaded connection in a flexible manner.

In order to attain the object of setting of collaboration conditions inthe object collaboration relations to control the permission ofcollaborations among those objects, an object collaboration apparatus ofthe present invention includes a message/action reaction conditionsetting portion, sets for each object message/action reaction conditionsfor executing actions corresponding to received messages, themessage/action reaction relation storage portion stores message/actionreaction conditions associated with message/action reaction relations,and the action execution portion executes an action in response toreceived messages if the message/action reaction condition is fulfilled.

With this configuration, in order for an object to execute an action, inaddition to receiving the corresponding message, it is possible to set amessage/action reaction condition in order to react to this receivedmessage, and object collaboration can be controlled in a finely tunedmanner by permitting or prohibiting collaboration between the objects.

In order to attain the object of providing a function for easily andexplicitly grasping the relation of a chain of organized objectcollaborations, the object collaboration apparatus of the presentinvention includes an object collaboration relation presentation portionfor presenting objects and object collaboration relations that have beenorganized between the objects. Taking an acceptance scope in whichmessages inputted by the message receiving portion are acceptable asinput message pattern information and taking an output scope to whichthe action execution portion can output messages as output messagepattern information, the object collaboration relation presentationportion presents the object collaboration relations to be presented ascollaboration relations between the input message pattern informationand the output message pattern information.

If the object collaboration relation presentation portion presents themessage/action reaction conditions, then the relations of the organizedobject collaboration chain, namely the input message patterns to whichthe objects react, the objects' actions and output message patterns andthe collaborations conditions, can be presented explicitly, and a personwho can properly change the relations of the object collaboration chain,such as a programmer, system administrator, or user, can easilyunderstand the object collaboration relations. The objects are displayedas icons, the object collaboration relations are displayed as linkinformation among the icons, or, the object collaboration relations aredisplayed in a table, so that the object collaboration relations arevisualized graphically, and can be grasped easily and explicitly.Moreover, as another means for presenting object collaborationrelations, the object collaboration relation presentation portion canexpress input message pattern information and output message pattern astags, and present the object collaboration relations to the user in formof tags of a programming language including tags, such as XML.

In an object collaboration apparatus of the present invention, it ispreferable that the object collaboration relation presentation portionincludes an object collaboration information inquiry function forinquiring object collaboration information of each of the objects; anobject collaboration information collecting function for collectingobject collaboration information of the objects, which is given by theobjects in response to an inquiry to the objects; an objectcollaboration relation synthesizing function for synthesizinginformation of the object collaboration relations of all objects fromthe collected object collaboration information of the objects; and anobject collaboration relation presentation function for presenting thesynthesized object collaboration relations.

With this configuration, an object collaboration apparatus can beorganized dynamically, updated object collaboration relations can bedetected as necessary, and based on the result, the object collaborationrelations can be presented explicitly to the user.

It is preferable that the object collaboration apparatus of the presentinvention includes an object collaboration control portion, the objectcollaboration control portion including an object collaboration changedetection function for detecting when a change in the objectcollaboration relations organized by the object collaboration relationorganizing function occurs; an object collaboration illogicalitydetection function for detecting when a collaboration illogicalityoccurs in the object collaborations; and an object collaboration logicprotection function for canceling the object collaboration change whenthe object collaboration illogicality detection portion has detected anillogicality in the object collaborations.

With this configuration, an object collaboration apparatus can beorganized dynamically, updated object collaboration relations can beexamined and analyzed as necessary, and the organizing/changing ofrelations that obstruct object collaboration operation, such as endlessloops of object collaborations, collisions of object collaborationrelations etc. can be detected, the organizing/changing of suchrelations can be cancelled, and a smooth operation of the system can beensured.

Furthermore, the object collaboration apparatus of the present inventionincludes an object searching portion that, given an object serving asthe starting point of an object collaboration and an object serving asthe ending point of an object collaboration, to form an objectcollaboration from the object serving as the starting point to theobject serving as the ending point, detects the messages that an objecton the network accepts as input message pattern information, and detectsmessages that are output as part of an action pattern as outputinformation, and taking the input message pattern and the output messagepattern as the search key, searches for an object having these patterns.To form an object collaboration from a first object serving as astarting point to a second object serving as an ending point, the objectsearching portion searches objects collaborating with these messagepatterns, taking the message patterns of the objects as a search key,and forms an object collaboration from the first object serving as thestarting point to the second object serving as the ending point. For thesearches there are various patterns, such as forward searching, backwardsearching or forward-and-backward bidirectional searching. In a forwardsearch, to form an object collaboration from a first object serving asthe starting point to a second object serving as the ending point, theobject searching portion, in a first search, takes the output messagepattern of the first object as the input message pattern and any patternas the output message pattern, and searches a third object group; in asecond search, takes the output message patterns of the objects of thethird object group as the input message pattern and any pattern as theoutput message pattern, and searches a fourth object group; selects fromthe output message patterns of the objects of the fourth object group afourth object whose output message pattern matches with the inputmessage pattern of the second object, and selects from the objects ofthe third object group a third object having as the output messagepattern the input message pattern of the selected fourth object; andforms an object collaboration from the first object via the third objectand the fourth object to the second object.

Providing a computer-readable storage medium storing a program forrealizing an object collaboration apparatus driven in accordance withthe present invention, it is possible to organize an objectcollaboration apparatus that can organize an object collaborationapparatus of the present invention on a computer system, and organize orchange the object collaboration apparatus in a flexible and dynamicalmanner, by reading the storage medium with a computer.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of the loose collaboration between objectsin the “awareness” analogy for the basic principle of the presentinvention.

FIG. 2 is a schematic diagram illustrating the basic principle of objectcollaboration insertion in a first embodiment of the present invention.

FIG. 3 is a schematic diagram illustrating multiple object collaborationinsertion in a first embodiment of the present invention.

FIG. 4 is a block diagram of the general configuration of an objectcollaboration apparatus of the first embodiment of the presentinvention.

FIG. 5 illustrates the concept of object collaboration before objectcollaboration insertion in the first embodiment of the presentinvention.

FIG. 6 shows an example of situation when a new sharing object has beeninserted to introduce a sharing display function into the system, in thefirst embodiment of the present invention.

FIG. 7 is a schematic diagram illustrating the basic principle of objectcollaboration coupling in a second embodiment of the present invention.

FIG. 8 illustrates the concept of object collaboration before objectcollaboration coupling in the second embodiment of the presentinvention.

FIG. 9 illustrates the concept of object collaboration coupling in thesecond embodiment of the present invention.

FIG. 10 is a schematic diagram illustrating the basic principle ofexternal intervention of object collaboration in a third embodiment ofthe present invention.

FIG. 11 illustrates the concept of object collaboration before externalintervention of object collaboration in the third embodiment of thepresent invention.

FIG. 12 illustrates the concept of external intervention of objectcollaboration in the third embodiment of the present invention.

FIG. 13 is a schematic diagram illustrating the basic principle ofreceiver-side participation in object collaboration in a fourthembodiment of the present invention.

FIG. 14 illustrates an object collaboration apparatus of the presentinvention, in which the basic principle of receiver-side participationof object collaboration of the fourth embodiment of the presentinvention is applied.

FIG. 15 is a schematic diagram illustrating the basic principle ofsender-side participation in object collaboration in a fifth embodimentof the present invention.

FIG. 16 illustrates an object collaboration apparatus of the presentinvention, in which the basic principle of sender-side participation ofobject collaboration of the fifth embodiment of the present invention isapplied.

FIG. 17 is a block diagram showing the general outline of an objectcollaboration apparatus according to a sixth embodiment of the presentinvention.

FIG. 18 illustrates the concept of collaboration among objects in anobject collaboration apparatus of the sixth embodiment of the presentinvention.

FIG. 19 is a diagram illustrating the basic principle of an objectcollaboration apparatus of a seventh embodiment of the presentinvention.

FIG. 20 shows an example of a visual chart generated by the objectcollaboration apparatus of the seventh embodiment of the presentinvention.

FIG. 21 illustrates an example of a configuration, in which an objectcollaboration includes an object collaboration core portion and anobject collaboration interface portion.

FIG. 22 illustrates a situation, in which the interface function of theobject collaboration interface portions is exploited to change theobject collaboration relations.

FIG. 23 is a block diagram showing the general outline of an objectcollaboration apparatus according to an eighth embodiment of the presentinvention.

FIG. 24 is a block diagram showing the general outline of an objectcollaboration apparatus according to a ninth embodiment of the presentinvention.

FIG. 25 illustrates the basic principle for searching an objectcollaboration by backward searching in an object collaboration apparatusof the ninth embodiment of the present invention.

FIG. 26 illustrates a DTD representing a message with an input or outputmessage used in the ninth embodiment.

FIG. 27 shows an example of a message that the object searching portion113 sends out in the first step in the ninth embodiment.

FIG. 28 shows an example of a message that the object searching portion113 sends out in the second step in the ninth embodiment.

FIG. 29 shows an example of a message that the object searching portion113 sends out in the third step in the ninth embodiment.

FIG. 30 shows an example of a message that the object searching portion113 sends out when repeating the second step in the ninth embodiment.

FIG. 31 shows an example of a message that the object searching portion113 sends out when repeating the third step in the ninth embodiment.

FIG. 32 shows an example of a message of requesting file conversionusing the result obtained with FIG. 31 in the ninth embodiment.

FIG. 33 shows an example of a message returning the result of FIG. 32 inthe ninth embodiment.

FIG. 34 shows an example of a message in which after receiving theresult of FIG. 33, again, “imagearbiter.phx”, which is a broker object,requests file conversion, in the ninth embodiment.

FIG. 35 indicates, like FIG. 34, that the file conversion has beenterminated successfully, in the ninth embodiment.

FIG. 36 is a diagram showing example of a storage medium storing aprogram for realizing an object collaboration apparatus of the presentinvention in accordance with the tenth embodiment.

FIG. 37 shows an example of a conventional object collaboration in aclient/server system based on CORBA.

BEST MODE FOR CARRYING OUT THE INVENTION

The following is a detailed description of preferred embodiments of anobject collaboration apparatus in accordance with the present invention,with reference to the accompanying drawings.

The present invention relates to an object collaboration apparatus whichperform collaboration processing between objects, such as communication,dialogue and cooperation between distributed objects. Individualcomputer systems serving as objects or individual application programsoperating on computer systems perform certain processes in form ofreactions in response to messages that are floated on a communicationpath defined as a shared field, and changing the reaction relationbetween messages and actions, the operation of the entire system can bechanged in a flexible manner.

In the present invention, the relation among the collaborating objectsis not so close that it depends on their internal state or internalfunctions, and functions can be built dynamically by objectcollaboration, in which the relation among the collaborating objects isflexible.

To understand the present invention better, the “awareness model” seenin human communication and collaboration behaviors is helpful. Thepresent invention presupposes that information processing similar to the“awareness” existing between human individuals is performed bycollaboration among distributed objects, and that the objectscollaborate based on the detected “awareness.” The following is anexplanation of the collaboration of distributed objects based on the“awareness” analogy as presupposed in the object collaboration apparatusaccording to the present invention. Then, an explanation of approachesto make the collaboration of distributed objects more flexible follows,together with specific embodiments.

The following is an explanation of the collaboration of distributedobjects based on the “awareness” analogy. The collaboration ofdistributed objects or computers based on the “awareness” analogy can beaccomplished by the following configuration.

1. “Awareness” messages are being shared or “broadcasted.”

2. Objects that receive an “awareness” message have their own relationsfor associating messages with actions.

3. In objects that send or receive the “awareness” message, therelations between messages and actions are separate.

Taking advantage of the nature of the “awareness” analogy, which is thata message and an action are separated or can be separated, makes itpossible to add the two important elements of participation andintervention as an interaction between objects, thus increasing thedegree of freedom for the collaboration between objects or betweencomputers connected over a network.

FIG. 1 is a schematic diagram of the loose collaboration between objectsin the “awareness” analogy.

In FIG. 1, numeral 201 indicates an object A and numeral 202 indicatesan object B. Both objects are entities which send and receive“awareness” messages. M1 is a message, namely an “awareness” message.Further, a1 indicates an action specified in the object A (201) and a2indicates an action specified in the object B (202). The arrow in FIG. 1indicates the sending of a message in which the starting point is anobject, and it shows a message reception in which the ending point is anobject. Each object has its own action serving as the internalcondition.

In FIG. 1, the object A (201) and the object B (202) collaborate via themessage M1. In the “awareness” analogy, the object A (201) sends out amessage basically without being concerned with the object B (202) or theinternal function of the object B (202). Also, the object A (202) doesnot have to specify the object B (202) to send out a message. The objectA (201) sends out the message M1 based on its own condition andprocessing contents. The object B (202) monitors messages floating onthe communication channel, and when it detects the message M1, and if M1is meaningful to the object B, it reacts and starts the action a2. Inthis way, the object A and the object B can carry out a meaningfulcollaboration, though this is not by a direct connection between theobject A (201) and the object B (202), but by a connection between themessage M1 and the action a2 of the object B (202). On the other hand,when the message is not M1, the object B (202) does not react unlessthis different message is in the same acceptance scope as the messageM1, or there is an action corresponding to such a different message.Accordingly, since the objects collaborate loosely via messages, thedegree of freedom of the collaboration between the objects increases.That is to say, there is no need for specifying the address of therecipient and the content for the processing request as in conventionalcomputer network communication systems, and “awareness” messagesindicating object conditions and processing results are floated on thenetwork. Each terminal monitoring the network detects the messages, andreacts autonomously to them if a corresponding action is specified.

There is no necessity to impose any limitations on the communicationchannel in the awareness analogy, which can be not only a physicalnetwork, such as a LAN, but go through any medium in which mutualreception is possible, such as radio, sound, or light. The communicationchannel can also be a storage medium, such as a mutually accessiblememory. Moreover, a virtual communication channel through port addressesof a communication channel is also possible.

The above is the basic principle for collaboration of distributedobjects based on the awareness model.

The following is an explanation of an object collaboration apparatus ofthe present invention, applying an approach for making the collaborationof distributed objects even more flexible. In the object collaborationapparatus of the present invention, an approach is introduced toincrease the flexibility of the collaboration of distributed objectsbased on the awareness analogy and dynamically change the collaborationrelation of distributed objects. In the following first through fifthembodiment, the five approaches of collaboration insertion,collaboration coupling, external intervention in collaboration,receiver-side collaboration participation, and sender-side collaborationparticipation. The sixth embodiment illustrates an embodiment of anobject collaboration apparatus having a collaboration condition settingfunction, in which collaboration conditions are included in thecollaboration among objects, and collaboration among objects is carriedout if these collaboration conditions are fulfilled. The seventhembodiment illustrates an embodiment of an object collaborationapparatus having an object collaboration relation presentation function,in which object collaboration relations are detected and explicitlydisplayed to the user. The eighth embodiment illustrates an embodimentof an object collaboration apparatus, in which the object collaborationsinclude an object collaboration core portion, in which objectcollaboration relations are maintained in a core, and an objectcollaboration interface portion for interfacing collaboration betweenthis object collaboration core portion and other objects, wherein, if achange in the object collaboration relation occurs, the relations of theobject collaboration core portion are maintained as they are, and theobject collaboration relations are changed by changing the collaborationdestination of the object collaboration interface portion. The ninthembodiment illustrates an embodiment of an object collaborationapparatus having a function for forming object collaboration bysearching an object forming the collaboration relation connecting anobject serving as the starting point and an object serving as the endingpoint. The tenth embodiment illustrates an embodiment that is an exampleof a computer-readable storage medium storing a program includingprocessing steps for realizing an object collaboration apparatus inaccordance with the present invention.

First Embodiment

The first embodiment explains the basic principle of objectcollaboration insertion in a distributed object collaboration based onthe awareness analogy, and an object collaboration apparatus, in whichthis principle is applied.

Here, “object collaboration insertion” means, given a series of objectcollaborations, inserting a new object collaboration relation with adifferent object into a portion of the object collaborations of thisseries. This means, that by separating a portion of this series ofobject collaborations, and organizing a collaboration relation betweenthe objects at which the series was separated and another object to beinserted, a collaboration is caused from the object at the positionbefore the separation of the series to the inserted new object, and acollaboration is caused from the inserted new object to the object atthe position behind the separation of the series, organizing a newseries of object collaborations.

FIG. 2 is a schematic diagram illustrating the basic principle of objectcollaboration insertion. Objects, messages, and the objects' actionportions are represented schematically. FIG. 2A illustrates thesituation before object collaboration insertion. FIG. 2B illustrates thesituation after object collaboration insertion. In FIG. 2, numeral 201denotes an object A, numeral 202 denotes an object B, and numeral 203denotes an object C. These objects are entities that can send andreceive messages. M1 and M2 denote messages. Furthermore, a1 denotes anaction defined in object A (201), a2 denotes an action defined in objectB (202), and a3 denotes an action defined in object C (203). When thestarting point of the arrows in the drawings of this and the followingembodiments is an object, it denotes sending of a message, and when theending point is an object, it denotes the receiving of a message. Allobjects have actions independently as internal states.

First of all, as shown in FIG. 2A, an object collaboration relation isorganized via a message M1 between an object A (201) and an object B(202). As has been explained for the basic principle of objectcollaboration, this object collaboration is a flexible collaboration viathe message M1. It is not necessary to specify a recipient address whensending the message M1, and sending objects can float messages on thenetwork field (i.e. the communication media), whereas receiving objectsmonitor the network field and can input any of these messages. Thismeans that the object A (201) does not have to be aware of the object B(202) and the action a2 to send a message M1 over the network. That isto say, it is irrelevant what kind of object collaboration there is.

By rewriting the reaction relation of messages/actions of object B(202), an object collaboration with object C (203) can be inserted, asshown in FIG. 2B. That is to say, the reaction relation ofmessages/actions of object B (202) is rewritten, and action a2 isdefined as an action in reaction to the message M2. If, as the reactionrelation of messages/actions held by the object C (203), a3 is taken asthe action reacting to message M1 and a message M1 is sent by the actiona3, then it is possible to insert a new object C (203) as an objectcollaboration relation.

Needless to say, it is possible to cascade more than one objectcollaboration insertion. This situation is shown in FIG. 3. FIG. 3 showsa situation, in which two object collaboration insertions have beencascaded. Compared with FIG. 2A, in FIG. 3, an object C (203) and anobject D (204) have been inserted into the object collaboration betweenthe object A (201) and the object B (202) and the message/actionreaction relation message M1→action a3→message M2→action a4→messageM3→action a2 has been organized, accomplishing the collaboration of allobjects.

Needless to say, the removal of object collaboration by the reverseprocess to object collaboration is also possible.

The following describes an object collaboration apparatus, in which theabove-described basic principles of object collaboration are applied.FIG. 4 is a block diagram of the general configuration of such an objectcollaboration apparatus.

In FIG. 4, numeral 101 denotes a message receiving portion, whichmonitors and inputs messages sent over a network. Numeral 102 denotes amessage/action reaction relation storage portion for storing therelation between messages and actions that are reactions to messages.The message/action reaction relation storage portion 102 includes amessage/action reaction table (reaction table) 103 listingmessage/action reaction relations. The message/action reaction relationstorage portion 102 compares the message pattern in the message/actionreaction table (reaction table) 103 with the messages received by themessage receiving portion 101, and when a received message matches withor is comprised in its message pattern, the corresponding action isexecuted. Numeral 104 denotes an action execution portion for executinga process in accordance with a specified action. Numeral 105 denotes amessage/action reaction relation update control portion for controllingthe updating of the message/action reaction relation stored in themessage/action reaction relation storage portion 102 when it isnecessary to update the message/action reaction relation. Themessage/action reaction relation update control portion 105 includes amessage/action reaction relation separation portion 106 for separatingthe message/action reaction relation in the message/action reactionrelation storage portion 102, and a message/action reaction relationorganizing portion 107 that associates a specified action with aspecified message.

Numeral 108 denotes a message sending portion for sending messages overthe network when necessary, numeral 109 denotes a communicationinterface, numeral 110 denotes a field serving as a communicationmedium, and conceptually includes networks for communication amongcomputers.

Taking a configuration for performing file sharing display as an exampleof a specific embodiment of an object collaboration apparatus inaccordance with the present invention, the following explains how theobject collaboration apparatus operates.

FIG. 5 illustrates the concept of object collaboration before objectcollaboration insertion in the first embodiment. Numeral 501 denotes afile displaying object without shared display function, and numeral 502denotes a display object without shared display function. Both the filedisplaying object 501 and the display object 502 have the configurationshown in FIG. 4.

When the file displaying object 501 wants to display a file A on adisplay, it sends a message M3 via the message sending portion 108 andthe communication interface 109 to the field 110. This message M3 can befor example (Display, FileA, x400, y300), which displays the File A withthe XY coordinates (400, 300) as the starting point. Monitoring thefield 110, the display object 502 displays and inputs the message M3 viathe communication interface 109 with the message receiving portion 108.

FIG. 5B illustrates the message/action reaction table (reaction table)103, which is kept by the message/action reaction relation storageportion 102 of the display object 502. On the left side, the table listsmessages, and on the right side, the table lists the correspondingactions. Here, the message (Display, *, *, *) is listed, wherein “*”represents a wildcard, which can stand for any kind of content. That isto say, it corresponds to all messages having “Display” as the firstitem. The action “draw” specifies that the display object executes adrawing process on the display. When the display object 502 receives themessage M3, it refers to the message/action reaction table 103, obtainsthe action “Draw”, and the action execution portion 104 executes adrawing process.

The following explains the insertion of object collaboration. In thisexample, a shared display function is introduced into the system byintroducing a new sharing as object and inserting a new objectcollaboration.

FIG. 6A shows the situation when a new sharing object 503 has beeninserted. As shown in FIG. 6A, the collaboration among the objects issuch that there is a collaboration from the file displaying object 501to the display object 502, and then, a collaboration with a sharingobject 503 has been inserted, including collaboration from the displayobject 502 to the sharing object 503 and back to the display object 502.

First, when information regarding an update of the message/actionreaction relation is given, for example in accordance with userinstructions or when it is necessary to improve the load conditions in adistributed object system, the message/action reaction relation updatecontrol portion 105 separates the message/action reaction relation inthe message/action reaction relation storage portion 102 of the displayobject 502 with the message/action reaction relation separation portion106. Here, this means that the relation between the message (Display, *,*, *) and the action (Draw) is cancelled, and the corresponding entry inthe message/action reaction table 103 of the display object 502 can betemporarily cancelled. Then, the message/action reaction relation updatecontrol portion 105 organizes the message/action reaction table 103shown in FIG. 6B in the display object 502 with the message/actionreaction organizing portion 107. The action (Status) is associated withthe message (Display, *, *, *), and new message/action reactionrelations are added for the message (Display-shared, *, *, *) and theaction (Shared draw) as well as for the message (Display-unshared, *, *,*) and the action (Unshared draw). Furthermore, the message/actionreaction relation update control portion 105 organizes themessage/action reaction table 103 shown in FIG. 6C in the display object503 with the message/action reaction organizing portion 107. A newmessage/action correspondence relation is added for the message(Check-status, *, *, *) and the action (Share).

Updating the message/action reaction tables 103 like this, the operationof the object collaboration apparatus is as follows. First, the filedisplaying object 501 sends out a message M3 (Display, File-A, x400,y300), the display object 502 reacts in accordance with themessage/action reaction table 103, and the action “Status” is executed.In this example, the action “Status” is programmed such that a messageM4 (Check-status, File-A, x400, y300) is sent out to the field 110.Then, the sharing object 503, which is monitoring the field 110, inputsthe message M4 via the communication interface 109 and the messagereceiving portion 108. The sharing object 503 reacts in accordance withthe message/action reaction table 103 shown in FIG. 6C and executes theaction “Share”. Here, the action “Share” means that it is checkedwhether the File-A, which is specified as the second item of the messageM4, is a shared file. If it is a shared file, the user is notified overthe display that the file is a shared file and a message M5(Display-shared, File-A, x400, y300) is sent out, and if it is not ashared file, the user is notified over the display that the file is nota shared file and a message M6 (Display-unshared, File-A, x400, y300) issent out. In the example in FIG. 5A, File A is a shared file, and thesharing object 503 sends out the message M5 (Display-shared, File-A,x400, y300). The display object 502 reacts in accordance with itsmessage/action reaction table 103, and executes the action “Draw”.

As shown above, in the object collaboration apparatus with theconfiguration in FIG. 5, which does not include a share state display, ashare state display is made possible by collaboration with a sharingobject 503, which is accomplished by object collaboration insertion inaccordance with the present invention as shown in FIG. 6.

An aspect that merits attention is firstly, no changes at all have beenadded to the file displaying object 501, which requested the filedisplay. Secondly, changes to the display object 502 can be applieddynamically during operation. In object collaboration by conventionalprogramming technology, changes to the display object 502 make itnecessary to recompile the program code, and to change the functions offile displaying object 501, but with the object collaboration insertionmethod of the present invention, these operations become unnecessary,and insertions and changes to the collaboration relation among aplurality of objects can be carried out in an easy and flexible manner.

Second Embodiment

The second embodiment explains the basic principle of objectcollaboration coupling in distributed object collaboration, and anobject collaboration apparatus, in which this principle has beenapplied.

Object collaboration coupling means that when two object collaborationsexist independently from one another, a new object collaborationrelation is organized, fulfilling the role of a bridge coupling the twoobject collaborations, and the two independent object collaborations areturned into one series of object collaborations. That is to say, a newobject collaboration is inserted, continuing one of the two objectcollaborations, and this new object collaboration is then caused tocollaborate with the other of the two object collaborations.

FIG. 7 is a schematic diagram illustrating the basic principle of objectcollaboration coupling. As in FIG. 5, objects, messages, and theobjects' action portions are represented schematically. FIG. 7Aillustrates the situation before object collaboration coupling, in whichthe object collaborations are independent from one another. FIG. 7Billustrates the situation after object collaboration insertion. In FIG.7, numerals 701 to 705 denote object A to object E, and M7 to M10 denotemessages.

In FIG. 7A, the object A 701 and the object B 702 collaborate via themessage M7, and the object C 703 and the object D 704 collaborate viathe message M8. The object B 702 may send out the message M9 in acertain action, but the objects C 703 and D 704 do not react. Here, theobject C 703 reacts to the message M10. Thus, the two objectcollaborations are independent from one another, and they are not in anobject collaboration relation.

As shown in FIG. 7B, an object E 705 having a new message/actionreaction relation is added, coupling the two independent objectcollaborations. If the object E 705 starts the action a5 in reaction tothe message M9, and sends out the message M10 to the field, then themessage M9, which is sent out after object collaboration between theobject A 701 and the object B 702 (that is, one of the above-mentionedobject collaborations), is inputted by the object E 705, the message M10is sent onto the field via the action a5, and an object collaborationbetween the object C 703 and the object D 704 (that is, the other of theabove-mentioned object collaborations) is started in reaction to themessage M10. Thus, the object collaborations that were independent inFIG. 7A are coupled into one series of object collaborations as shown inFIG. 7B. This is the basic principle of object collaboration coupling.

Next, an embodiment of an object collaboration apparatus in accordancewith the present invention, in which the basic principle of objectcollaboration coupling is applied, is explained below.

The following explanations take a memo transfer service as a specificexample.

In the block diagrams showing the general configuration of this objectcollaboration apparatus, detailed explanations regarding aspects thathave been covered by FIG. 4 have been omitted.

FIG. 8 illustrates the concept of object collaboration before the objectcollaboration coupling in the second embodiment. Numeral 801 denotes afirst memo sending object, numeral 802 denotes a first memo receivingobject, displaying received content on a display, numeral 803 denotessecond memo sending object, and numeral 804 denotes a second memoreceiving object, displaying received content on a display. Here, thereare two independent object collaborations, namely the objectcollaboration between the first memo sending object 801 and the firstmemo receiving object 802, and the object collaboration between thesecond memo sending object 803 and the second memo receiving object 804.

Let's consider the case that a memo sender S sends a memo 1 consistingof a file B to a memo recipient R using the first memo sending object801. Ordinarily, the memo sender S uses a computer in which the firstmemo sending object 801 is present, and starts an action of sending amessage M11. The message M11 has the format (Memo, user-S, user-R,File-B). The message receiving object 802 of the computer used by thememo recipient R has the message/action reaction table shown in FIG. 8B,which keeps a message/action correspondence relation between the message(Memo, *, *, *) and the action (Show memo). When the memo receivingobject 802 reacts to the message M11, the action (Show memo) is started,and the file B is displayed on the display of the computer used by thememo recipient R.

Now let's assume that the memo recipient R is out, that is, at adistance location. In that case, the memo recipient R cannot receive thememo with the above object collaboration only. Let's further assume thatthere is a computer at the location to which the memo recipient R went,and that in this environment there is an object collaboration betweenthe second memo sending object 803 and the second memo receiving object804, and a display controlled by the second memo receiving object can beseen the memo recipient R.

Object collaboration coupling can be carried out as shown in FIG. 9A.Before the memo recipient R leaves, a new object collaboration isorganized, coupling the object collaboration to the second memoreceiving object 804, so that received memos are forwarded. The memorecipient R updates the message/action reaction relation between themessage (Memo, *, *, *) and the action (Ask transfer) from themessage/action reaction table 103 in FIG. 8B to the one FIG. 9B with themessage/action reaction relation update control portion 105 of theobject collaboration apparatus on which the first memo receiving object802 is located, organizes a new transfer object 805, and organizes inits message/action reaction relation storage portion 102 amessage/action reaction table 103 associating the message (Transfer, *,*, *) with the action (Send) as shown in FIG. 9C, with themessage/action reaction relation organizing portion 107 of the transferobject 805.

On the other hand, the second memo receiving object 803 keeps themessage/action reaction table 103 shown in FIG. 9D, and the second memoreceiving object 804 keeps the message/action reaction table 103 shownin FIG. 9E.

The following explains how the coupling of the thusly organized objectcollaboration works.

First, the memo sender S uses a computer on which the first memo sendingobject 801 is present, and starts an action of sending out a message M11(Memo, user-S, user-R, File-B). This aspect is the same as in FIG. 8A.In reaction to the message M11, the memo receiving object 802 of thecomputer used by the memo recipient R executes the action “Ask transfer”in accordance with the message/action reaction relation in FIG. 9B.Here, the action “Ask transfer” outputs a message M12 requesting for atransfer of the File-B, which is specified as the fourth item in messageM11. The message M12 has the format (Transfer, user-S, user-R, File-B).In response to the message M12, the transfer object 805 starts theaction “Send” in accordance with the message/action reaction table shownin FIG. 9C. The action “Send” sends out a message M13 transferring theFile-B, which is specified as the fourth item in message M12. For thetransfer, it is also possible that the memo is transferred to a rangethat is restricted to the computer at the location to which the memorecipient R went or to a network including that computer. The messageM13 has the format (Ask-show, user-S, user-R′, File-B). The third itemuser-R′ indicates the transfer destination. The second message sendingobject 803 of the computer at the location to which the memo recipient Rwent has the message/action reaction table shown in FIG. 9d, with amessage/action correspondence relation associating the message(Ask-show, *, *, *) with the action (Request show). In response to themessage M13, the memo sending object 803 starts the action(Request-show), and the memo is sent in a message M14. The secondmessage receiving object 804 located on the computer at the location towhich the memo recipient R went, has the message/action reaction tableshown in FIG. 9E, with a message/action correspondence relationassociating the message (Memo, *) with the action (Show memo). Inresponse to the message M14, the second memo sending object 804 startsthe action (Show memo), and the File B is displayed on a display of thecomputer at the location to which the memo recipient R went.

Thus, it is possible to take two independent object collaborations asshown in FIG. 8A, and couple the object collaborations together as shownin FIG. 9A, so as to organize a series of object collaborations.

Here, the class of the first memo sending object 801 and the first memoreceiving object 802 shown in FIG. 8 do not have to be the same as theclass of the second memo sending object 803 and the second memoreceiving object 804, as long as they operate according to the basicprinciple shown in FIG. 1. Consequently, the equipment, OS, and mark-uplanguage with which the classes of the memo sending objects and the memoreceiving objects are actually operated can be independent. Whenmessages are exchanged as in FIG. 1, the messages do not necessarily allhave to be of the same format, and it is also possible to provide thetransfer object 805 between the two classes shown in FIG. 9 with aconversion function for converting between the two formats.

Another aspect that merits attention in the object collaborationapparatus for memo transfer in accordance with the present embodiment isthe fact that no changes at all have been added to the first memosending object 501, which requested the memo transfer. Secondly, changesto the second sending object 802 and the transfer object 805 can beapplied dynamically during operation. In object collaboration byconventional programming technology, changes to the second sendingobject 802 and the transfer object 805 make it necessary to recompilethe program code, and to change the functions, but with the objectcollaboration coupling method of the present invention, these operationsbecome unnecessary, and the coupling and changing of the collaborationamong a plurality of independent objects becomes easier and moreflexible.

Third Embodiment

The third embodiment explains the basic principle of externalintervention in distributed object collaboration, and an objectcollaboration apparatus, in which this principle has been applied.

External intervention in object collaboration means that an objectexternally intervenes in object collaboration of a given message/actionreaction relation. The original message/action reaction relation isdisrupted, and after automatically detecting the object collaborationflow and executing a predetermined action, the object collaboration flowis returned to the original object, and the process of intervention byinsertion of object collaboration as described in the first embodimentis schematically expressed by intervention with an external object. Theexplanations for the process of intervention by multiple insertion ofobject collaboration as described in the first embodiment have beenabridged where appropriate. As can be seen in the example of externalintervention shown in FIG. 10, external intervention in objectcollaboration includes three steps. In a first step, the message/actionrelation in the object A is disrupted, in a second step, the objectcollaboration destination is replaced, and in a third step, interventionis executed with a coupled external object with a new message/actionrelation. With this external intervention, a function that did not existin object A is added by interaction with an external object B. Asbecomes clear from the example in FIG. 10, the separation of messagesand actions opens the possibility of interaction with new objects. Seenunder the “awareness” analogy, the degree of freedom in the flexiblecollaboration of distributed objects results from the possibility ofseparating links between messages and actions and coupling then backtogether.

The following is an explanation of an embodiment of an objectcollaboration apparatus in accordance with the present invention,applying the basic principle of external intervention in objectcollaboration.

The request and reply of tasks is taken as a specific example. Inparticular, object groups that could perform only monotonous reactionsin response to an initial external load execution request are taken asan example for a dynamical change to realize collective loaddistribution.

In the block diagrams showing the general configuration of this objectcollaboration apparatus, detailed explanations regarding aspects thathave been covered by FIG. 4 have been omitted.

FIG. 11 illustrates the concept of object collaboration before theexternal intervention in object collaboration of the third embodiment,and is an example of a monotonous reaction in response to a load. Inthis example, an action of a task object 1101 floats a message M19(“query”) on the field. Receiving this message, a serve object 1102reacts, which has the message/action pair “query-serve” in itsmessage/action reaction table. In the example shown in FIG. 11, whenthere is a plurality of serve objects 1102 that react to the message“query”, these serve objects 1102 execute the action “Serve”independently.

FIG. 12 illustrates the concept of object collaboration by externalintervention in object collaboration of the third embodiment. A brokerobject 1103 serving as the external object rewrites the message/actionreaction table of the serve object 1102, disrupts the message/actionobject collaboration of message “query” and action “serve” shown in FIG.11, and intervention of the broker object 1103 updates the objectcollaboration to “query (M19)”→“Bid”→“apply (M20)”→“Decide”→“action(M21)”→“Serve”.

With this external intervention in object collaboration the task objectalso sends a “query” message, as in FIG. 11, but the serve object 1102does not simply react to this message “query”, but sends a “Bid” to thebroker object 1103, and starts the action “Serve” only after receiving a“Decision”. Consequently, providing the broker object with a functionfor selecting among two or more competing serve objects 1102, it becomespossible to provide a low load serve object 1102 with a function fordistributing loads such as executing a “query” from the task object1101. The important aspect is that it is not necessary to anticipate thestate of object collaboration of FIG. 12 in the system design, and afterdesigning the simple object collaboration state of FIG. 11, it ispossible to expand the design to the system in FIG. 12, adding newbroker objects as necessary. In object collaboration by conventionalprogramming technology, changes to the task object 1101 and the serveobject 1102 make it necessary to recompile the program code and tochange the functions, but with the object collaboration externalintervention method of the present invention, these operations becomeunnecessary, and changes to the collaboration relation due tointervention in an external object becomes easier and more flexible.

Fourth Embodiment

The fourth embodiment explains the basic principle of receiver-sidecollaboration participation in distributed object collaboration based onthe “awareness” analogy, and an object collaboration apparatus, in whichthis principle has been applied.

Receiver-side collaboration participation means, given an objectcollaboration associated with a certain message, organizing a new objectcollaboration and participating in the afore-mentioned objectcollaboration by adding a message/action reaction relation that letsother objects react to this message. That is to say, it becomes possiblethat a plurality of objects participate, reacting to an objectcollaboration in response to one awareness message.

FIG. 13 illustrates the basic principle of receiver-side participationin object collaboration, and shows a situation, in which objects B(1302), C (1303), and D (1304) all react independently to a message M22sent by an object A (1301). Of course, the actions in the objects B(1302), C (1303), and D (1304) can be the same or they can be different.Also, for the object B (1302), it does not matter whether the otherobjects C (1303) and D (1304) are present or not. Consequently, additionand elimination of the objects B (1302), C (1303), and D (1304) in FIG.13 is nothing but the creation and destruction of applications byparticipation of new objects and their withdrawal.

FIG. 14 illustrates an embodiment of an object collaboration apparatusof the present invention, in which the basic principle of receiver-sideparticipation of object collaboration is applied. FIG. 14 is an exampleof receiver-side participation in the example of the displaying of afile described with FIG. 5 of the first embodiment. As in the firstembodiment, a file displaying object 1401 sends a message M22 (Display,FileA, x400, y300) via the message sending portion 108 and thecommunication interface 109 to the field 110, in order to execute aprocess for displaying the file A on a display. On the field 110, thereare the three display objects 1402 a to 1402 c having the message/actionreaction table 103 shown in FIG. 14B for reacting to the message M22.These display objects 1402 a to 1402 c monitor the field 110 and detectand input messages M22 floating on the field.

Here the three display objects 1402 a to 1402 c react to the message M22(Display, FileA, x400, y300) and each executes the action “Draw” todisplay the file A on a display. The objects 1402 a, 1402 b, and 1402 ccan of course have different actions for different machines, which meansthat the display controlled by the objects does not have to be the samedisplay, and the display format and display content does not have to beidentical.

Thus, taking an object collaboration having an action in response to acertain message, receiver-side participation of object collaboration ispossible by parallel addition of objects having actions corresponding tothe same message.

Fifth Embodiment

The fifth embodiment explains the basic principle of sender-sidecollaboration participation in distributed object collaboration based onthe “awareness” analogy, and an object collaboration apparatus, in whichthis principle has been applied.

Sender-side collaboration participation means, given an objectcollaboration associated with a certain message, another objectorganizes a new object collaboration and participates in theafore-mentioned object collaboration on the sender side by sending thismessage onto the field 110. That is to say, it is possible that for anobject collaboration in response to one awareness message, a pluralityof objects send the same message and participate.

FIG. 15 illustrates the basic principle of sender-side participation ofobject collaboration. As shown in FIG. 15, the objects A (1501) and B(1502) send out identical messages M23, and the object C (1503) and themessages M23 are associated with one another. In this case, the object C(1503) responds and starts an action, regardless whether the message M23has been sent from the object A (1501) or whether it has been sent fromthe object B (1502). This means that in the collaboration of objects,participation on the sender side is acceptable. In other words, it canbe said that object B (1502) intervenes on the sender side in thecollaboration between object A (1501) and object C (1503).

Thus, taking an object collaboration having an action in response to acertain message, sender-side participation of object collaboration ispossible by parallel addition of objects having actions that send outthe same message.

FIG. 16 illustrates an embodiment of an object collaboration apparatusin accordance with the present invention, in which the basic principleof sender-side participation of object collaboration is applied. FIG. 16is an example of receiver-side participation in the example of thedisplaying of a file described with FIG. 5 of the first embodiment. Asin the first embodiment, a file displaying object 1601 a sends a messageM24 (Display, FileA, x400, y300) via the message sending portion 108 andthe communication interface 109 to the field 110, in order to execute aprocess for displaying the file A on a display. In addition to the filedisplaying object 1601 a, there are the file displaying objects 1601 band 1601 c on the field 110, sending out messages M24 as actions. Thedisplay object 1602 monitors the field 110 and detects and inputsmessages M22, so that there are three sender-side objects. Here, thedisplay object 1602 keeps the message/action reaction table 103 shown inFIG. 5B, executes the action “Draw” in response to the message M24, anddisplays the file that has been sent from the sender-side objects 1601 ato 1601 c on a display.

Thus, taking an object collaboration having an action in response to acertain message, sender-side participation of object collaboration ispossible by parallel addition of sending objects having actions thatsend out the same message.

Sixth Embodiment

An object collaboration apparatus of the sixth embodiment of the presentinvention further includes a message/action reaction condition settingportion. Message/action reaction conditions for executing actions inresponse to received messages are set for each object, so that themessage/action reaction relation storage portion stores message/actionreaction relations in association with message/action reactionconditions, and the action execution portion executes actions inresponse to received messages if the message/action reaction conditionsare fulfilled.

FIG. 17 is a block diagram showing the general outline of an objectcollaboration apparatus according to the sixth embodiment. As shown inFIG. 17, an object collaboration apparatus according to the sixthembodiment includes a message/action reaction condition setting portion120. In addition to actions associated with messages, the message/actionreaction table 103 a of the message/action reaction relation storageportion 102 also associates message/action reaction conditions forexecuting these message/action reactions. The message/action reactionconditions are set by the message/action reaction condition settingportion 120. The set message/action reaction conditions can be forexample whether certain message parameters are within a set range, orwhether the object platform environment, such as the load conditions, iswithin a set range. Other structural elements that are the same as inthe first to fourth embodiments have been marked by the same numerals,and their further explanation has been omitted.

FIG. 18 illustrates the concept of collaboration among objects in anobject collaboration apparatus of the sixth embodiment, schematicallyillustrating the function of the message/action reaction conditions. Asshown in FIG. 18, the object B 1802 is provided with a message/actionreaction condition 1803, which functions conceptually like a filter forreceived messages. Messages are accepted only if the condition isfulfilled, and acceptance is denied if the condition is not fulfilled.After the message M25 sent from the object A 1801 has been received bythe object B, it is checked whether the message/action reactioncondition 1803 is fulfilled. What kind of message/action reactioncondition is set will depend on the circumstances. For example, it ispossible to set a condition with regard to the load ratio of theplatform of the object that received the message. When the reactioncondition is that the load ratio is not higher 0.5, then an actionreaction is not performed in an object with a large load whose loadratio is larger than 0.5, even if an action in response to the receivedmessage is listed in the message/action reaction table 103 a, becausethe given message/action reaction condition is not fulfilled.

By providing message/action reaction conditions, the following effectscan be attained.

Firstly, the message/action reaction relation can be expressed moreflexibly. In actual operation, processes and controls that the userwants to perform can be complicated and depend on specific conditions,so that it may be difficult to list all relations between messages andactions in a one-to-one form. With the object collaboration apparatus ofthe present invention, it is easy to list processes and controls foractual operations that may be complicated and depend on specificconditions, using the message/action reaction table 102.

Secondly, it is possible to realize load distributed processing thatbalances all object collaboration apparatuses forming a network on thefield 110. If the relations between messages and actions are listed onlyin a one-to-one form, then an action is started when receiving a messagelisted in the message/action reaction table. No consideration is givento the operating conditions of the receiving object. Objects listingreactions to messages that are frequently sent off by many objects willfrequently perform actions, and it is conceivable that temporaryoverloads occur, in which the loads concentrate. With the objectcollaboration apparatus of the sixth embodiment, it is possible toprevent load concentrations by providing an upper limit of the loadratio as a message/action reaction condition, thereby accomplishing abalanced load distribution. Furthermore, with the object collaborationapparatus of the sixth embodiment, it is also possible to realize alogical AND operation to execute an action when two specific messageshave been received.

Seventh Embodiment

In the seventh embodiment of the present invention, the objectcollaboration relations in a distributed object collaboration apparatusare explicitly indicated to the outside by icons representing objectsand a visual chart expressing object collaboration relations by linklines.

FIG. 19 is a diagram illustrating the basic principle of an objectcollaboration apparatus of the seventh embodiment. For the sake ofexplanation, only three object collaboration apparatuses A 1910, B 1920,and C 1930 are connected to the field 110 in the example of FIG. 19. Inprinciple, there is no limitation to the number of connected objectcollaboration apparatuses, and the field 110 can also be comprised ofmany fields connected over a network such as the internet. Also, for thesake of explanation, structural elements have been omitted asappropriate in the object collaboration apparatuses in the example ofFIG. 19, and for the object collaboration apparatus A 1910, only thecommunication interface 109, a message/action reaction table 103, themessage/action reaction relation information collecting portion 130, theobject collaboration relation analysis portion 140, and the objectcollaboration relation presentation portion 150 are shown, but inaddition to that, the object collaboration apparatus A 1910 alsoincludes the same structural elements shown in the FIGS. 4 and 17.Furthermore, in the drawings of the object collaboration apparatus B1920 and the object collaboration apparatus C 1930, the internalstructural elements have been completely omitted.

The following is an explanation of the extraction of objectcollaboration relations in a distributed object collaboration apparatusand a visualization method therefor. First, the object collaborationapparatuses extract information indicating the relation between messagesand their associated actions from objects included in themselves andfrom the message/action reaction table 130 of the objects, with themessage/action reaction relation information collecting portion 130.Then, this message/action reaction relation information is exchangedwith the other object collaboration apparatuses. The message/actionreaction relation information is floated as messages via the messagesending portion 108 and the communication interface 109 on the field110, and given to the other object collaboration apparatuses.Conversely, messages of message/action reaction information sent fromthe other object collaboration apparatuses are received via thecommunication interface 109 and the message receiving portion 101.

Next, the objects of the object collaboration apparatuses and theobjects' message/action reaction information that have been obtained areanalyzed by the object collaboration relation analysis portion 140, andthe collaboration relation of the objects present on the field isanalyzed and extracted. First of all, the objects are displayed asicons. For each object, messages to which the object can react, theactions reacting to these messages, and the messages sent out when theseactions are started are extracted. Moreover, objects that have actionsreacting to these sent messages are identified. This means that thesemessage/action reaction relations signify the collaboration amongobjects. These collaborations are drawn as link lines between the objecticons. This process is performed for all objects and theirmessage/action reaction relations, and the object collaborationrelations are explicitly displayed as a visual chart on the objectcollaboration relation display portion 150. An example of such a visualchart is shown in FIG. 20.

The square icons denote objects, whose lower half indicates an action.The arrows denote link lines indicating that objects at the arrow tipscan react to messages sent out from objects at the arrow origins. Thearrows are associated with messages floated on the field.

With the object collaboration apparatus of the seventh embodiment, thefollowing advantageous effects can be attained.

Firstly, complicated object collaboration relations can be visualized ina visual chart, and collaboration relations can be grasped intuitively.

Secondly, it is possible to determine an action reactions that may becaused by an action before the fact. The reaction relations betweenmessages and actions among objects collaborate more flexibly, andpreviously, there were cases in which it was difficult to anticipatewhat action reaction occurs at other objects an response to a messagefrom a certain object, but with the object collaboration apparatus ofthe seventh embodiment, it is possible to present the message/actionreaction relations and object collaboration relations as a visual chart.

Eighth Embodiment

In an object collaboration apparatus according to the eighth embodimentof the present invention, the object collaborations include an objectcollaboration core portion, in which object collaboration relations aremaintained as a core, and an object collaboration interface portion forinterfacing collaboration between the object collaboration core portionand other objects. In this example, when an object collaborationrelation is changed, the relations of the object collaboration coreportion stay unchanged, and the object collaboration relations arechanged by changing the collaboration destination of the objectcollaboration interface portion.

If the object collaboration interface portion is located behind theobject collaboration core portion in the flow of object collaboration,then the object collaboration interface portion becomes an actionportion (output scope interface) reacting to the output message patternof the object collaboration core portion, and the object collaborationdestination can be changed in a flexible manner by rewriting the action.If it is located before the object collaboration core portion, then itbecomes an input message pattern (input scope interface) to which theobject collaboration core portion reacts, and if other objects send outmessages that match this input message pattern, then they can haveobject collaboration with the object collaboration core portion.

FIG. 21 illustrates an example of a configuration, in which an objectcollaboration includes an object collaboration core portion and anobject collaboration interface portion.

In FIG. 21A, two objects 2100 a and 2100 b enclosed by the solid line2100 form an object collaboration core portion 2100, and the two objects2110 a and 2110 b enclosed by the solid line 2110 form another objectcollaboration core portion 2110. In these portions, objectcollaborations maintain object collaboration relations as a core.

In the object collaboration core portion 2100, the object 2100 a reactsto the message M26 in accordance with the information in themessage/action reaction table 103, starts an action a26, and sends out amessage M27. The object 2100 b reacts to the message M27 according tothe information in its message/action reaction table 103, starts theaction a27, and sends out a message M28.

In the object collaboration core portion 2110, the object 2110 a reactsto the message M29 in accordance with the information in itsmessage/action reaction table 103, starts an action a29, and sends out amessage M30. The object 2110 b reacts to the message M30 according tothe information in its message/action reaction table 103, starts theaction a30, and sends out a message M31.

As shown in FIG. 21A, an object collaboration interface portion 2101enclosed by a dotted line is provided between the object collaborationcore portions 2100 and 2110. This object collaboration interface portioninterfaces collaboration between an object collaboration core portionand other objects, and if the object collaboration relation is changed,it maintains the relation with the object collaboration core portion,and the object collaboration relations are changed by changing thecollaboration destination of the object collaboration interface portion.The object collaboration interface portion also can be located before orbehind the object collaboration core portions 2100 and 2110 in the flowof object collaboration, but for the sake of explanation, the objectcollaboration interface portion 2101 in this example is an interfacebetween the two.

The object collaboration interface portion 2101 is an object that iscontrolled by one message/action reaction table 103, in which an actiona28 associated with a message M28 is listed. This action a28 is theinformation that is sent out by the message M29 as a part of the action.By starting the action a28 in reaction to the message M28, it functionsas an output scope interface 2102 of the object collaboration coreportion 2100, and since the object collaboration core portion 2110reacts to the sent message M29, it also functions as an input scopeinterface 2103 of the object collaboration core portion 2110. The outputscope interface 2102 of the object collaboration core portion 2100 andthe input scope interface 2103 of the object collaboration core portion2110 are associated in that the listed action a28 sends a message M29 asa part of the action.

In the object that is the object collaboration interface portion 2101,the action a28 listed in the message/action reaction table 103 cuts therelation of sending out a message M29 as part of the action. That is tosay, the information on the actions in the message/action reaction table103 is rewritten. By rewriting the information on the actions in themessage/action reaction table 103 of the object that is the objectcollaboration interface portion 2101, the relation between the outputscope interface 2102 of the object collaboration interface core portion2100 and the input scope interface 2103 of the object collaborationinterface core portion 2110 is cut, but the two do not lose theirfunction as interfaces for the object collaboration core portions. Thatis to say, the output scope interface 2102 and the input scope interface2103 function as interfaces, and can organize new collaborations withother objects in a flexible manner. This situation is shown in FIG. 21B.The information of the actions in the message/action reaction table 103is rewritten, and if the action a28 is listed as sending out M32 as partof the action, the effect that the output destination of the outputscope interface 2102 is switched to an object 2120 can be attained. Ifthe message M29 is sent out such that also the object 2120 in its outputstage (it can also have an output scope interface) matches the inputscope interface 2103, then it can collaborate with the objectcollaboration core portion 2110. Thus, by exploiting the interfacefunction of the object collaboration interface portions, the objectcollaboration relations can be changed in a flexible manner. Thissituation is shown in FIG. 22.

FIG. 23 is a block diagram showing the general outline of an objectcollaboration apparatus according to the eighth embodiment. As shown inFIG. 23, in the object collaboration apparatus according to the eighthembodiment, a message/action reaction relation organizing portion 107 aincludes an action information changing portion 111 and an interfacedetection portion 112. The action information changing portion 111rewrites the action information when the information in themessage/action reaction table 103 is changed by the message/actionreaction organizing portion 107 a. The interface detection portion 112detects input scope interfaces and output scope interfaces of objectcollaboration interface portions present on the field 110, and managesthis interface information. The message/action reaction relationorganizing portion 107 a rewrites the action information of the managedobjects, so as to connect to the input scope interface or output scopeinterface of the object with which a new object collaboration relationis to be organized, changing the action information such that a matchingmessage is sent out, and organizes a new object collaboration relation.It should be noted that other structural elements that are the same asin the first to fourth embodiment have been marked by the same numerals,and their further explanation has been omitted.

In this manner, in the object collaboration apparatus according to theeighth embodiment of the present invention, the object collaborationsinclude an object collaboration portion, in which object collaborationrelations are maintained as a core, and an object collaborationinterface portion for interfacing the collaboration between the objectcollaboration core portion and other objects. When an objectcollaboration relations are changed, the relations of the objectcollaboration core portion stay unchanged, and the object collaborationrelations can be changed by changing the collaboration destination ofthe object collaboration interface portion.

Ninth Embodiment

The ninth embodiment relates to an object collaboration apparatus havingthe function of forming object collaboration by searching objectsforming a collaboration relation connecting an object as the startingpoint and an object as the ending point.

This formation of object collaboration is determined by the objectserving as the starting point and an object serving as the ending pointfor which object collaboration is to be organized, and a collaborationrelation is formed by searching a collaboration of objects connectingthe two. The object collaboration apparatus of the ninth embodimentperforms the searching of object collaboration with an object searchingportion 113.

The following is an explanation of the basic principle of objectcollaboration with the searching function of the ninth embodiment.Several patterns can be given as examples of the search function. Forexample, forward searching, backward searching and forward-and-backwardbidirectional searching are possible. In the following explanation of anobject collaboration apparatus of the ninth embodiment and the basicprinciple of its object searching function, backward searching is takenas an example.

FIG. 24 is a block diagram of the general configuration of an objectcollaboration apparatus in accordance with the ninth embodiment of thepresent invention. As shown in FIG. 24, the object collaborationapparatus of the ninth embodiment includes an object searching portion113. Taking an input message pattern and an output message pattern asthe search key, the object searching portion 113 searches for objectspresent on the field 110 that have this input message pattern or outputmessage pattern. The object searching portion 113 can perform searcheswith the asterisk “*” as a wildcard in the search key. For example, ifin the search key, “*” is taken for the input message pattern and “jpegformat” is taken for the output message pattern, then all objects whoseoutput patterns is “jpeg format” are obtained as the result, regardlessof their input message pattern. The object searching portion 113includes an object message pattern detection portion 114, and can detectthe input message pattern and the output message pattern of a specifiedobject with the object message pattern detection portion 114. It ispreferable that the detected input message pattern and output messagepattern can be visually displayed, as shown for example in FIG. 25. Itshould be noted that other structural elements that are the same as inthe first to fourth embodiment have been marked by the same numerals,and their further explanation has been omitted.

FIG. 25 illustrates the basic principle for searching an objectcollaboration from an object serving as the starting point to an objectserving as the end point by backward searching. In this example, theuser requests conversion of data in the format ┌i┘ (for example, data inbitmap format) into data in the format ┌k┘ (for example, compressed datain JPEG format), and this conversion is performed by collaboration ofobjects. Also, in this example, in the search process of the objectsearching portion 113, the input message pattern information and theoutput message pattern information of the objects are expressed as tagsin the messages between objects on the field, and the objectcollaboration relations are expressed as tags in a programming languagethat includes tags, such as XML. FIG. 26 shows a DTD representing aninput message or output message used in this embodiment.

In a first step, using the object message pattern detection portion 114,the object searching portion 113 detects the output message pattern ofthe object serving as the starting point and the input message patternof the object serving as the ending point with a message in XML formatindicating a presentation of starting point and ending point.

In the example in FIG. 25A, the left side represents the output messagepattern (2401) of the object serving as the starting point. Here, it isthe format ┌i┘. The right side represents the output message pattern(2402) of the object serving as the ending point. Here, it is the format┌k┘. That is to say, if an object collaboration can be organized thatstarts from the output message pattern 2401 of the object serving as thestarting point and ends at the input message pattern 2402 of the objectserving as the ending point, then data of the format ┌i┘ can beconverted into data of the format ┌k┘.

FIG. 27 shows an example of a message that the object searching portion113 sends out in the first step. In the message in FIG. 27, the “MATRIXNAME” “FmtTranslate” represents the name and the type of the organizedcollaboration, and is a generic term for aspects defining thecollaboration between modules, such as protocol, ontology, and contentmark-up language. The entry item “Action” “request” means that thismessage requests the conversion of the file format of the starting pointinto the file format of the ending point, while presenting startingpoint and ending point of the collaboration. The entry item “Sender”“uiserv” indicates the sender of this message. The entry item“requestID” “dumy1” indicates the conversation ID of the collaborationamong the modules. The entry item “OriginalMessageType” “┌i┘” indicatesthat the file format at the starting point is that of a file having theextension ┌i┘, and shows that the output pattern serving as the startingpoint is ┌i┘. The entry item “TargetMessageType” “┌k┘” indicates thatthe file format at the ending point is that of a file having theextension ┌k┘, and shows that the output pattern serving as the endingpoint is ┌k┘. The entry item “MessageKey” is the place of the ┌i┘ filein question, and indicates in this example, that the data can beretrieved by passing the key 936244885600 to the module ui.phx indicatedby its URI. In this embodiment, the object accepting the message shownin FIG. 27 (imagearbiter.phx, explained below) has an input pattern thatallows a reaction to the portion “Action”, “Request”, and includes anoperation in response to the information indicated by the tags“OriginalMessageType” and “TargetMessageType”.

In a second step in this example, since searching is carried out bybackward searching, the object searching portion 113 sets the searchkey, taking a wildcard as the input message pattern and taking the inputmessage pattern 2402 of the object serving as the ending point, that is,┌k┘ as the output message pattern, and carries out a search. Here,“wildcard” refers to an arbitrary message pattern. FIG. 25Bschematically illustrates this situation.

FIG. 28 shows an example of a message sent out by the object searchingportion 113 in the second step. In FIG. 28, the entry item “Action”“in-request” indicates that this message requests a reply from themodules comprised in the pattern. “imagearbiter.phx” indicated in URIformat in the entry item “Sender” indicates the sender of this message.“imagearbiter.phx” corresponds to a broker controlling a contract netfor organizing a chain for performing file conversion of “FmtTranslate”.The entry item “RequestID” “dumy1” is the conversation ID of thecollaboration among modules and indicates that this is a message of aseries continuing the message of FIG. 27. The entry item“OriginalMessageType” is denoted by an asterisk “*”. The asterisk “*” isused as a wildcard, and means “any file format”. That is to say, theextension of the file format serving as the starting point can beanything. The entry item “TargetMessageType” “┌k┘” means that the fileformat serving as the ending point is that of a file having theextension ┌k┘, and that the output pattern serving as the ending pointis ┌k┘. The entry item “MessageKey” indicates the location of the ┌i┘file in question, and is simply the location of the file as shown inFIG. 27. In the present embodiment, an object accepting the messageshown in FIG. 28 (┌j┘ 2 ┌k┘.phx described below) has an input patternthat can react to the portion “Action”, “in-request”. The fact that“OriginalMessageType” in FIG. 28 is a wildcard shows that regardless ofwhat is specified for the input pattern of the object on the acceptingside (for example, ┌j┘ in the case of ┌j┘ 2 ┌k┘.phx in this embodiment),┌j┘ can be accepted because it is comprised in the wildcard “*”.

As the third step, the object searching portion 113 receives a replyreturned as a reaction to the message sent out in the second step. Whenthis reply is obtained, an object collaboration is accomplished, thatconnects to the input message pattern 2402 of the object serving as theending point. This situation is shown conceptually in FIG. 25C. Thus,the searched collaboration from the object 2403 to the input messagepattern 2402 of the object serving as the ending point is accomplished.

FIG. 29 shows an example of a message that the object searching portion113 receives in the third step. In FIG. 29, the entry item “Action”,“bid” shows that this message is a reply to “in-request” and has aninput pattern comprised in the pattern of “in-request”. “┌j┘ 2 ┌k┘.phx”shown in URI format in the entry item “Sender” indicates the sender ofthis message. “┌j┘ 2 ┌k┘.phx” presents a service constituting a contractnet for organizing a chain for file conversion of “FmtTranslate”. Asshown below, it is a module that can convert file formats from theformat ┌j┘ to the format ┌k┘. The entry item “RequestID” “dumy1” is theconversation ID of the collaboration among modules and indicates thatthis is a message of a series continuing the messages of FIGS. 27 and28. The entry item “OriginalMessageType” is ┌j┘, which indicates thatthe module ┌j┘ 2 ┌k┘.phx converts ┌j┘ files into another format, and hasthe format ┌j┘ as the input pattern. This format ┌j┘ is comprised in theasterisk “*” of FIG. 28. The entry item “TargetMessageType” “┌k┘”indicates that the file format serving as the ending point is that of afile having the extension ┌k┘, and that the output pattern serving asthe ending point is ┌k┘. The entry item “MessageKey” is as in FIG. 28,and indicates to where the ┌k┘ file to be output is being output to, sothat the output file can be acquired using that key. The entry item“PathHistory” indicates that one stage of the chain has been organized.

Then, if the object collaboration has not yet reached the output messagepattern of the object 2401 at the starting point, the second step andthird step of searching collaborating objects are repeated. Here, theinquiry process of the second step is carried out once again. The inputmessage pattern of the object 2403 is the format ┌j┘, so that the searchkey is set taking a wildcard as the input message pattern, and theformat ┌j┘ as the output message pattern, and a search is carried out.FIG. 25D schematically illustrates this situation.

FIG. 30 shows an example of a message sent out by the object searchingportion 113 in the repeated second step. In FIG. 30, the “Action” of themessage is also “in-request”, as in FIG. 27, and the sender of themessage is “imagearbiter.phx”. “MessageKey” and “PathHistory” are asshown in FIG. 29, and “RequestID” is as in FIG. 27 onward.

Then, the object searching portion 113 receives the reply returned as areaction to the message sent off in the repeated second step. Obtainingthis reply, an object collaboration is obtained, which connects theobject 2402 serving as the ending point in two steps with the object2401 at the starting point. This situation is shown schematically inFIG. 25E. Here, it is assumed that an object 2404, whose input messagepattern is the format ┌i┘, among the obtained replies. This object 2404is selected. Thus, by backward searching, an object collaboration can befound, which performs object collaboration between the input messagepattern 2402 of the object serving as the ending point and the object2403, and further the object 2404, to the output message pattern 2401 ofthe object serving as the starting point. That is to say, an objectcollaboration is organized, in which a file with the output messagepattern format ┌i┘ of the object 2401 serving as the starting point isconverted through collaboration of the objects 2404 and 2403 into theinput message format ┌k┘ of the object 2402 serving as the ending point.

FIG. 31 shows an example of the message that the object searchingportion 113 receives in the repeated third step. In FIG. 31, the“Action” of the message is also “bid”, as in FIG. 29, and the sender ofthe message is “win2s.phx”, which can present the conversion service.The “PathHistory” is shown in addition to the one of FIG. 29. The“OriginMessageType” is the asterisk “*”, which indicates that “win2┌j┘.phx” has the capability of converting any file format into theformat ┌j┘. With “bid” shown in FIGS. 29 and 31, a reply is obtainedthat any file format can be converted into the format ┌k┘, and the replyis obtained that a conversion from bmp-format to a ┌k┘ file, which wasthe request of FIG. 27, is possible. In the ninth embodiment,“imagearbiter.phx”, which performs the control of the messagescontinuing from FIG. 28, checks the messages from FIG. 27 onward bymonitoring them.

Then, in a fifth step, the file is actually converted using the obtainedobject collaboration. FIG. 32 shows an example of a message forrequesting file conversion using the results obtained up to FIG. 31. InFIG. 32, the “Action” of the message is “in-serve”, which requests theexecution of a file conversion service. The sender of the message is“imagearbiter.phx”, and the bidder of the contract net specifies “win2┌j┘.phx” with the item “Contract”.

Then, in a sixth step, the result of the requested object collaborationis received. FIG. 33 shows an example of a message that returns theresult of FIG. 32. Here, as in FIG. 34, receiving the result of FIG. 33,again the “imagearbiterphx”, which serves as the broker object, againrequests file conversion.

The “Action” of FIG. 32 is “in-serve” again, and this time“OriginalMessageType” and “TargetMessageType” are rewritten as ┌j┘0 and┌k┘. By following the “PathHistory” of FIG. 33 backwards, the executerof the service, “┌j┘ 2 ┌k┘” is selected, and the fact that it has beenselected is indicated in the item “Contract”.

The “Action” of FIG. 33 is “in-inform”, and this means notifying thatthe file conversion has been terminated successfully. In FIG. 33, the“PathHistory” is one step shorter than in FIG. 32, because theprocessing is performed by “win2 ┌j┘”. To acquire the converted file,the portion “MessageKey” is rewritten.

The “Action” of FIG. 34 is “in-serve” again, and this time“OriginalMessageType” and “TargetMessageType” are rewritten as ┌j┘ and┌k┘. By following the “PathHistory” of FIG. 32 backwards, the executerof the service, “ ┌j┘ 2 ┌k┘” is selected, and the fact that it has beenselected is indicated in the item “Contract”.

Then, like FIG. 34, FIG. 35 indicates that the file conversion has beenterminated successfully. The aspect where FIG. 35 differs from FIG. 34is that there is no item left in the “PathHistory”. This also indicatesthat the series of processes initiated by FIG. 27 has been terminated.The fact that “TargetMessageType” is ┌k┘ indicates that the final fileformat is ┌k┘, and means that processing can be connected to a modulehaving ┌k┘ as the input pattern and waiting for a pattern in which the“TargetMessageType” is ┌k┘. In this embodiment, “ui serv”, which hassent the message of FIG. 27, displays the ┌k┘ file in reaction to apattern in which input pattern is the ┌k┘ of the “TargetMessageType”┌k┘.

With these process steps, the object collaboration apparatus of theninth embodiment specifies an object serving as the starting point andan object serving as the ending point of an object collaboration to beorganized, and a collaboration relation can be formed by searching foran object collaboration that connects the two.

As can be seen from these processes, with the object collaborationapparatus of the present embodiment, the search of the objectcollaboration relations is performed while gradually relaxing thecollaboration scope (gradually widening the scope), taking a specifiedinput message pattern as the search key, and taking a wild cart as theoutput message pattern. Compared to the method of tightening the scopefrom starting point to ending point method for searching objectcollaboration can be realized, that is more flexible than the method, inwhich, while widening the scope beginning at the starting point, anobject collaboration from the starting point to the ending point isdiscovered when an image including the ending point is obtained.

Tenth Embodiment

The object collaboration apparatus of the present invention can bedevised with various kinds of computers by providing a program that isstored on a computer-readable storage medium and contains the processingsteps for realizing the above-described configurations. As shown in FIG.36, the recording medium, on which the program providing the processingsteps realizing the object collaboration apparatus according to thepresent invention is stored, can be not only a portable recording medium3601 such as a CD-ROM 3602 or a flexible disk 3603, but also a recordingmedium 3600 in a recording apparatus on the network or a recordingmedium 3605 such as a hard disk of a computer or a RAM. When executingthe program, the program is loaded into a computer 3604 and executed inits main memory.

Furthermore, the source program does not have to be in compiled form,but it is also possible to send an applet in an intermediate language toa client computer over a network, and to execute it with an interpreteron the client computer.

INDUSTRIAL APPLICABILITY

With the object collaboration apparatus of the present invention, thedegree of freedom of collaboration among object collaborationapparatuses connected to a network can be increased, and a system can beorganized, that can carry out collaboration processes such as dialogueor cooperation among computer groups or object groups, can adapt in aflexible manner to changes in an object-oriented environment, and thatcan change progressively. Furthermore, it is possible to design a systemwith a simple object collaboration situation at first, and expand thedesign by adding objects at a later stage as necessary.

With the object collaboration apparatus of the present invention, objectcollaboration insertion is possible in a flexible and dynamical manner,and it is possible to reduce the influence on objects before and afterthe insertion, so that changing and recompiling the program becomesunnecessary.

With the object collaboration apparatus of the present invention,independent object collaborations that do not collaborate with oneanother can be coupled to form a series of object collaborations in aflexible and dynamical manner, and it is possible to reduce theinfluence on objects before and after the coupling, so that changing andrecompiling the program becomes unnecessary.

With the object collaboration apparatus of the present invention, it ispossible to perform external intervention with an external object into aseries of object collaborations and change the flow of objectcollaboration in a flexible and dynamical manner, and to reduce theinfluence on objects before and after the change, so that changing andrecompiling the program becomes unnecessary.

With the object collaboration apparatus of the present invention, it ispossible that, taking an object collaboration having an action reactingto a certain message, objects are additionally organized in a flexibleand dynamical manner that have an action reacting to this message inparallel, organizing a situation of receiver-side participation ofobject collaboration.

With the object collaboration apparatus of the present invention, it ispossible that, taking an object collaboration having an action reactingto a certain message, objects are additionally organized in a flexibleand dynamical manner that have an action of sending this message inparallel, organizing a situation of sender-side participation of objectcollaboration.

With the object collaboration apparatus of the present invention, it ispossible that in addition to message/action reaction relations,message/action reaction conditions are set for these reactions, allowinga more flexible operation. By setting reaction conditions to avoid theconcentration of loads, load distributed processing becomes possible,balancing the entire network.

With the object collaboration apparatus of the present invention, it ispossible to display the collaboration relation among objectcollaboration apparatuses on the network as a visual chart, which can begrasped intuitively, making it possible to determine action reactionsbefore they occur.

With the object collaboration apparatus of the present invention, it ispossible to specify an object serving as the starting point of an objectcollaboration to be organized and an object serving as an end pointthereof, and form an object collaboration by searching an objectcollaboration connecting the two.

What is claimed is:
 1. An object collaboration apparatus, whereinobjects comprise: a message receiving portion for monitoring andinputting messages that have been sent over a network; a message/actionreaction relation storage portion for storing relations between messagesand information on actions that are reactions to the messages; an actionexecution portion that executes actions in accordance with themessage/action reaction relations; a message/action reaction relationupdate control portion for controlling an updating of reaction relationsbetween messages and actions in accordance with the necessity to updatethe message/action reaction relations; and a message/action reactionrelation organizing portion for associating specified actions tospecified messages with the message/action reaction relation updatecontrolling portion; wherein a new reaction relation between an actionand a message is organized by intervening into an existing reactionrelation between an action and a message; specification of themessage/action reaction relation update controlling portion isspecification of an existing message/action relation between a firstmessage and a first action to be intervened and specification of asecond action to be added, as well as specification of interventioninformation on additional organizing of a reaction relation of thesecond action with the first message; and a relation between the firstmessage and the second action is additionally organized with themessage/action reaction relation organizing portion, and objectcollaboration based on the relation between the first message and thefirst action is made parallel to a new object collaboration based on therelation between the first message and the second action.
 2. An objectcollaboration apparatus, wherein objects comprise: a message receivingportion for monitoring and inputting messages that have been sent over anetwork; a message/action reaction relation storage portion for storingrelations between messages and information on actions that are reactionsto the messages; an action execution portion that executes actions inaccordance with the message/action reaction relations; a message/actionreaction relation update control portion for controlling an updating ofreaction relations between messages and actions in accordance with thenecessity to update the message/action reaction relations; and amessage/action reaction relation organizing portion for associatingspecified actions to specified messages with the message/action reactionrelation update controlling portion; wherein a new reaction relationbetween an action and a message is organized by intervening into anexisting reaction relation between an action and a message;specification of the message/action reaction relation update controllingportion is specification of an existing message/action relation betweena first message and a first action to be intervened, specification of anexisting second action outputting a first message and a third action tobe added, and specification of intervention information on additionalorganizing of a new collaboration relation of the specified third actionwith the first action; a relation in which the third action outputs thefirst message is additionally organized with the message/action reactionrelation organizing portion, providing a new object collaboration; andobject collaboration by the relation between the second action, thefirst message and the first action becomes parallel to the new objectcollaboration by the relation between the third action, the firstmessage and the first action.
 3. An object collaboration apparatus,wherein objects comprise: a message receiving portion for monitoring andinputting messages that have been sent over a network; a message/actionreaction relation storage portion for storing relations between messagesand information on actions that are reactions to the messages; an actionexecution portion that executes actions in accordance with themessage/action reaction relations; a message/action reaction relationupdate control portion for controlling an updating of reaction relationsbetween messages and actions in accordance with the necessity to updatethe message/action reaction relations; and a message/action reactionrelation organizing portion for associating specified actions tospecified messages with the message/action reaction relation updatecontrolling portion; wherein a new reaction relation between an actionand a message is organized by intervening into an existing reactionrelation between an action and a message; if there is a plurality ofindependent object collaborations in which messages and actionscollaborate, then specification of the message/action reaction relationupdate controlling portion is specification of an existing first objectcollaboration and an existing second object collaboration to beintervened, and specification of intervention information of couplingthe specified independent object collaborations; a new message/actionreaction relation is additionally organized with the message/actionreaction relation organizing portion between a first message outputtedwhen executing an action on an ending side of the specified first objectcollaboration and a new action outputting a second message to which anaction of the beginning side of the specified second objectcollaboration reacts, coupling the independent object collaborations. 4.The object collaboration apparatus according to claim 3, wherein byeliminating the additionally organized message/action reaction relationwith the message/action reaction relation organizing portion, thecoupled object collaborations are separated into independent objectcollaborations.
 5. An object collaboration apparatus, wherein objectscomprise: a message receiving portion for monitoring and inputtingmessages that have been sent over a network; a message/action reactionrelation storage portion for storing relations between messages andinformation on actions that are reactions to the messages; an actionexecution portion that executes actions in accordance with themessage/action reaction relations; a message/action reaction relationupdate control portion for controlling an updating of reaction relationsbetween messages and actions in accordance with the necessity to updatethe message/action reaction relations; a message/action reactionrelation organizing portion for associating specified actions tospecified messages with the message/action reaction relation updatecontrolling portion; and a message/action reaction relation separationportion for separating an existing message/action reaction relation inthe message/action reaction relation storage portion specified by themessage/action reaction relation update controlling portion, wherein anew reaction relation between an action and a message is organized byintervening into an existing reaction relation between an action and amessage.
 6. The object collaboration apparatus according to claim 5,wherein specification of the message/action reaction relation updatecontrolling portion is specification of an existing message/actionreaction relation to be separated and specification of an object havinga new message/action reaction relation to be inserted; based on thespecification, the message/action reaction relation separation portionseparates the existing relation of message and action; based on thespecification, the message/action reaction relation organizing portionassociates the existing message with the new action and associates thenew message outputted as a part of the new action with the existingaction; and the object having the new message/action reaction relationis inserted between the existing message and the exiting action.
 7. Theobject collaboration apparatus according to claim 6, wherein newmessage/action reaction relations by objects inserted between theexisting message and the existing action are cascaded, and objectcollaboration from the existing message through cascaded collaborationsof actions and messages to the existing action is achieved.
 8. Theobject collaboration apparatus according to claim 5, wherein when therelation between an existing message and an existing action is cascaded,and there is a relation from one message through several collaborationsof actions and messages to one action, specification of themessage/action reaction relation update controlling portion isspecification of a relation between an existing first message and firstaction and a relation between an existing second message and secondaction to be intervened, and specification of information to associatethe specified first message with the second action and remove anyobjects between the two; and with the message/action reaction relationorganizing portion, the action content is changed from outputting thefirst message to outputting the second message, the object collaborationdestination is changed such that the second action reacts to the secondmessage, and existing objects pertaining to collaboration from the firstaction to the second message are removed.
 9. The object collaborationapparatus according to claim 5, wherein when the relation between anexisting message and an existing action is cascaded, and there is arelation from one message through several collaborations of actions andmessages to one action, then specification of the message/actionreaction relation update controlling portion is specification of arelation between an existing first message and first action and arelation between an existing second message and second action to beintervened, and specification of information to associate the specifiedfirst message with the second action and remove any objects between thetwo; the relation between the second message and the second action isseparated by the message/action reaction relation separation portion;and with the message/action reaction relation organizing portion, thefirst message is associated with the second action to change the objectcollaboration destination such that the second action reacts to thesecond message, and existing objects pertaining to collaboration fromthe first action to the second message are removed.
 10. The objectcollaboration apparatus according to claim 5, wherein objectcollaborations based on message/action reactions comprise: an objectcollaboration core portion, in which object collaboration relations aremaintained as a core; and an object collaboration interface portion forinterfacing collaboration between the object collaboration core portionand other objects; wherein when an object collaboration relation ischanged, the relations of the object collaboration core portion aremaintained unchanged, and the object collaboration relation is changedby changing the collaboration destination of the object collaborationinterface portion.
 11. The object collaboration apparatus according toclaim 10, wherein the object collaborations comprise a first objectcollaboration core portion, a first object collaboration interfaceportion that is an object collaboration interface portion for the firstobject collaboration core portion, a second object collaboration coreportion and a second object collaboration interface portion that is anobject collaboration interface portion for the second objectcollaboration core portion; wherein when the first object collaborationinterface portion and the second object collaboration interface portionare associated by one message/action reaction relation and objectcollaboration has been organized, specification of the message/actionreaction relation update controlling portion is specification of aseparation of the collaboration between the first object collaborationinterface portion and the second object collaboration interface portion,and specification of a new object to be inserted; the message/actionreaction relation separation portion separates the collaboration betweenthe first object collaboration interface portion and the second objectcollaboration interface portion based on the specification; and themessage/action reaction relation organizing portion associates arelation of the first object collaboration interface portion with theobject to be inserted and associates the object to be inserted with thesecond object collaboration interface portion based on thespecification, inserting the new object.
 12. An object collaborationapparatus, wherein objects comprise: a message receiving portion formonitoring and inputting messages that have been sent over a network; amessage/action reaction relation storage portion for storing relationsbetween messages and information on actions that are reactions to themessages; an action execution portion that executes actions inaccordance with the message/action reaction relations; a message/actionreaction relation update control portion for controlling an updating ofreaction relations between messages and actions in accordance with thenecessity to update the message/action reaction relations; and amessage/action reaction relation organizing portion for associatingspecified actions to specified messages with the message/action reactionrelation update controlling portion; wherein a new reaction relationbetween an action and a message is organized by intervening into anexisting reaction relation between an action and a message; objectcollaborations based on message/action reactions comprise: an objectcollaboration core portion, in which object collaboration relations aremaintained as a core; and an object collaboration interface portion forinterfacing collaboration between the object collaboration core portionand other objects; and when an object collaboration relation is changed,the relations of the object collaboration core portion are maintainedunchanged, and the object collaboration relation is changed by changingthe collaboration destination of the object collaboration interfaceportion.
 13. The object collaboration apparatus according to claim 12,further comprising a function for notifying input pattern and outputpattern of the object collaboration interface portion to the outside.14. The object collaboration apparatus according to claim 12, wherein aninput pattern and an output pattern of the object collaborationinterface portion can be changed.
 15. An object collaboration apparatus,wherein objects comprise: a message receiving portion for monitoring andinputting messages that have been sent over a network; a message/actionreaction relation storage portion for storing relations between messagesand information on actions that are reactions to the messages; an actionexecution portion that executes actions in accordance with themessage/action reaction relations; and an object collaboration relationpresentation portion for presenting objects and object collaborationrelations that have been organized between objects; wherein, taking anacceptance scope in which messages inputted by the message receivingportion are acceptable as input message pattern information and takingan output scope to which the action execution portion can outputmessages as output message pattern information, the object collaborationrelation presentation portion presents the object collaborationrelations to be presented as collaboration relations between the inputmessage pattern information and the output message pattern information,and message/action reaction conditions for executing actions in responseto received messages are set for each object, and the objectcollaboration relation presentation portion also includes thepresentation of the message/action reaction conditions in the objectcollaboration relations to be displayed.
 16. The object collaborationapparatus according to claim 15, wherein the object collaborationrelation presentation portion displays the objects as icons, displaysthe object collaboration relations as link information between theicons, and visualizes objects and organized object collaborationrelations graphically.
 17. The object collaboration apparatus accordingto claim 15, wherein the object collaboration relation presentationportion presents the object collaboration relations as a table.
 18. Theobject collaboration apparatus according to claim 15, wherein the objectcollaboration relation presentation portion expresses the input messagepattern information and the output message pattern information as tags,and displays the object collaboration relations with a programminglanguage including these tags.
 19. The object collaboration apparatusaccording to claim 15, wherein the object collaboration relationpresentation portion includes an object collaboration informationinquiry function for inquiring object collaboration information of eachof the objects; an object collaboration information collecting functionfor collecting object collaboration information of the objects, which isgiven by the objects in response to an inquiry to the objects; an objectcollaboration relation organizing function for organizing information ofthe object collaboration relations of all objects from the collectedobject collaboration information of the objects; and an objectcollaboration relation presentation function for presenting theorganized object collaboration relations.
 20. The object collaborationapparatus according to claim 19, wherein the objects further comprise anobject collaboration information notification function for respondingwith the object's object collaboration information to an inquiry by theobject collaboration information inquiry function.
 21. The objectcollaboration apparatus according to claim 19, comprising an objectcollaboration control portion, the object collaboration control portioncomprising an object collaboration change detection function fordetecting when a change in the object collaboration relations organizedby the object collaboration relation organizing function occurs; anobject collaboration illogicality detection function for detecting whena collaboration illogicality occurs in the object collaborations; and anobject collaboration logic protection function for canceling the objectcollaboration change when the object collaboration illogicalitydetection portion has detected an illogicality in the objectcollaborations.
 22. An object collaboration apparatus, wherein objectscomprise: a message receiving portion for monitoring and inputtingmessages that have been sent over a network; a message/action reactionrelation storage portion for storing relations between messages andinformation on actions that are reactions to the messages; an actionexecution portion that executes actions in accordance with themessage/action reaction relations; and an object searching portionwhich, taking a message pattern exchanged between objects that arepresent on the network as a search key, searches for objects that havethis message pattern as an input/output message pattern; wherein to forman object collaboration from a first object serving as a starting pointto a second object serving as an ending point, the object searchingportion detects an output message pattern of the first object and aninput message pattern of the second object, searches objectscollaborating with these message patterns, taking the detected messagepatterns of the objects as a search key, and forms an objectcollaboration from the first object serving as the starting point to thesecond object serving as the ending point, and the object searchingportion includes an object message pattern detection portion, andspecified input message patterns and output message patterns can bedetected with the object message pattern detection portion.
 23. Anobject collaboration apparatus, wherein objects comprise: a messagereceiving portion for monitoring and inputting messages that have beensent over a network; a message/action reaction relation storage portionfor storing relations between messages and information on actions thatare reactions to the messages; an action execution portion that executesactions in accordance with the message/action reaction relations; and anobject searching portion which, taking a message pattern exchangedbetween objects that are present on the network as a search key,searches for objects that have this message pattern as an input/outputmessage pattern; wherein to form an object collaboration from a firstobject serving as a starting point to a second object serving as anending point, the object searching portion detects an output messagepattern of the first object and an input message pattern of the secondobject, searches objects collaborating with these message patterns,taking the detected message patterns of the objects as a search key, andforms an object collaboration from the first object serving as thestarting point to the second object serving as the ending point; theobject searching portion an a first search, takes the output messagepattern of the first object as the input message pattern and any patternas the output message pattern, and searches a third object group; in asecond search, takes the output message patterns of the objects of thethird object group as the input message pattern and any pattern as theoutput message pattern, and searches a fourth object group; selects fromthe output message patterns of the objects of the fourth object group afourth object whose output message pattern matches with the inputmessage pattern of the second object, and selects from the objects ofthe third object group a third object having as the output messagepattern the input message pattern of the selected fourth object; andforms an object collaboration from the first object via the third objectand the fourth object to the second object.
 24. The object collaborationapparatus according to claim 23, wherein if among the objects of thefourth object group there is no object whose output message patternmatches with the input message pattern of the second object, then, in athird search, taking the output message patterns of the objects of thefourth object group as the input message pattern and any pattern as theoutput message pattern, the procedure of searching a fifth object groupis repeated, repeating the search of object groups until one of theoutput message patterns of the objects in those object groups matchesthe input message pattern of the second object, and an objectcollaboration from the first object to the second object is formed. 25.An object collaboration apparatus, wherein objects comprise: a messagereceiving portion for monitoring and inputting messages that have beensent over a network; a message/action reaction relation storage portionfor storing relations between messages and information on actions thatare reactions to the messages; an action execution portion that executesactions in accordance with the message/action reaction relations; and anobject searching portion which, taking a message pattern exchangedbetween objects that are present on the network as a search key,searches for objects that have this message pattern as an input/outputmessage pattern; wherein to form an object collaboration from a firstobject serving as a starting point to a second object serving as anending point, the object searching portion detects an output messagepattern of the first object and an input message pattern of the secondobject, searches objects collaborating with these message patterns,taking the detected message patterns of the objects as a search key, andforms an object collaboration from the first object serving as thestarting point to the second object serving as the ending point; theobject searching portion in a first search, takes any pattern as theinput message pattern and the input message pattern of the second objectas the output message pattern, and searches a third object group; in asecond search, takes any pattern as the input message pattern and theinput message patterns of the objects of the third object group as theoutput message pattern, and searches a fourth object group; selects fromthe input message patterns of the objects of the fourth object group afourth object whose input message pattern matches with the outputmessage pattern of the first object, and selects from the third objectgroup a third object having as the input message pattern the outputmessage pattern of the selected fourth object; and forms an objectcollaboration from the first object via the fourth object and the thirdobject to the second object.
 26. The object collaboration apparatusaccording to claim 25, wherein if among the objects of the fourth objectgroup there is no object whose input message pattern matches with theoutput message pattern of the first object, then, in a third search,taking any pattern as the input message pattern and the input messagepatterns of the objects of the fourth object group as the output messagepattern, the procedure of searching a fifth object group is repeated,repeating the search of object groups until one of the input messagepatterns of the objects in those object groups matches the outputmessage pattern of the first object, and an object collaboration fromthe first object to the second object is formed.
 27. An objectcollaboration apparatus, wherein objects comprise: a message receivingportion for monitoring and inputting messages that have been sent over anetwork; a message/action reaction relation storage portion for storingrelations between messages and information on actions that are reactionsto the messages; an action execution portion that executes actions inaccordance with the message/action reaction relations; and an objectsearching portion which, taking a message pattern exchanged betweenobjects that are present on the network as a search key, searches forobjects that have this message pattern as an input/output messagepattern; wherein to form an object collaboration from a first objectserving as a starting point to a second object serving as an endingpoint, the object searching portion detects an output message pattern ofthe first object and an input message pattern of the second object,searches objects collaborating with these message patterns, taking thedetected message patterns of the objects as a search key, and forms anobject collaboration from the first object serving as the starting pointto the second object serving as the ending point; the object searchingportion in a first search, takes the output message pattern of the firstobject as the input message pattern and any pattern as the outputmessage pattern, and searches a third object group; in a second search,takes any pattern as the input message pattern and the input messagepattern of the second object as the output message pattern, and searchesa fourth object group; selects a combination, in which the outputmessage patterns of the objects of the third object group matches withthe input message pattern of the fourth object group, and takes theobject of the third object group in this combination as the third objectthe object of the fourth object group in this combination as the fourthobject; and forms an object collaboration from the first object via thethird object and the fourth object to the second object.
 28. The objectcollaboration apparatus according to claim 27, wherein if among theobjects of the third object group there is no object whose outputmessage pattern matches with the input message pattern of an object ofthe fourth object group, then, in a third search, taking the outputmessage patterns of the objects of the third object group as the inputmessage pattern and any pattern as the output message pattern, theprocedure of searching a fifth object group is repeated, in a fourthsearch, taking any pattern as the input message pattern and the inputmessage patterns of the objects of the fourth object group as the outputmessage pattern, the procedure of searching a sixth object group isrepeated, repeating the search of object groups until one of the outputmessage patterns of the objects in one of the object groups matches theinput message pattern of the other object group, and an objectcollaboration from the first object to the second object is formed.